"""
    作者：50
    日期：2020-03-18
    版本：2.0
    功能：根据输入的时间（hh:mm）,输出应该起床的大致时间（hh:mm）
    2.0 如果不是正常时间睡觉，也同样输出06:00-07:30之间的睡醒时间
"""
"""
    想法说明：
    我们平时早起不了，是因为困意很浓，而导致困意很浓的原因是因为你的闹钟把你从深睡眠中闹醒。也就是，你正在做梦的时候，被吵醒了，这时候肯定会觉得很困。
    《睡眠革命》一书中提到，90分钟是一个人各个睡眠阶段的时间，也就是深浅睡眠交替的时间，又叫一个睡眠周期。
    我们晚上睡眠是由多个睡眠周期叠加形成的。
    如果能在浅睡眠的时候醒过来，那么自然也不会觉得困意很浓。

"""

import datetime


str_low_time = '06:00'
str_hign_time = '07:30'

def timeWakeup(time_to_sleep):
    i = 0
    while True:
        time_stamp = 90 * i
        time_to_wakeup = time_to_sleep + datetime.timedelta(minutes=time_stamp)
        str_to_wakeup = time_to_wakeup.strftime('%H:%M')

        if ( str_low_time <= str_to_wakeup <= str_hign_time ):
            print('您可以在{}这个时间点醒来'.format(str_to_wakeup))
            print('您睡了{}个小时'.format(time_stamp/60))
            break
        i += 1

def main():
    str_stop = input('程序是否终止(y/n):')

    while str_stop == 'n':

        input_srt = input('请输入入睡时间（hh:mm）:')

        time_to_sleep = datetime.datetime.strptime(input_srt, '%H:%M')

        print('您准备在{}:{}这个时间点入睡'.format(time_to_sleep.hour,time_to_sleep.minute))

        print()
        # 计算睡眠时间
        timeWakeup(time_to_sleep)
        print()
        str_stop = input('程序是否终止(y/n):')

    print('程序终止')


if __name__ =='__main__':
    main()
